# -*- coding: UTF-8 -*-
########################################################################
#源程序名称: compile_script.py
#软件著作权: 恒生电子股份有限公司
#服务名称:  
#模块名称:  compile_script  
#功能说明:  脚本编译
#相关文档:  
#作    者:  PeterLee
#开发日期:  20170715
#备    注:  
#修改记录： 
########################################################################

import sys
import traceback
import six
from bokeh.sampledata.gapminder import filename


#import exception

def compile_script(codes, file_name, scope):
    '''
                         将一段字符串的源码编译成字节码或AST(抽象语法树)，字节码可以使用函数exec()来执行，而AST可以使用eval()来继续编译
        :param str codes:源码的字符串对象
        :param str file_name:读取字符串的文件对象
        :param dict scope:代码运行的环境
        :return scope 包含策略文件中对应函数, 如init, handle_data等
    '''
    try:
        script_info = complie(codes, filename, 'exec')
        scope = six.exec_(script_info, scope)
        return scope
    except Exception as e:
        (exc_type, exc_value, exc_traceback) = sys.exc_info()
        
    